import Vue from 'vue'
import Vuex from 'vuex'
// 2.导入模块

Vue.use(Vuex)
/*
  目标：
    
*/
export default new Vuex.Store({
  // 1.状态管理
  state: {
    arr: [
      {
        pname: "联想笔记本电脑",
        id: 1,
        uptDate: new Date(),
        price: 6000,
        count: 50,
        user: "张三",
        isShow: true,
      },
      {
        pname: "宏基笔记本电脑",
        id: 2,
        uptDate: new Date(),
        price: 8000,
        count: 30,
        user: "里斯",
        isShow: true,

      },
    ],
  },
  // 2.计算属性
  getters: {
    total(state) {
      return state.arr.reduce((pre, cur) => {
        if (cur.isShow) {
          return pre + cur.price * cur.count
        } else {
          return pre
        }
      }, 0)
    },
    num(state) {
      return state.arr.reduce((pre, item) => {
        if (item.isShow) {
          return pre + 1
        } else {
          return pre
        }
        // let arr1 = [];
        // let num1 = 0
        // let flag = true
        // 如果有 返回true;  没有为false
        // if (arr1.includes(item.pname) === false) {
        //   arr1.push(item.pname)
        // }
        // if (flag) {
        //   return arr1.length
        // }
        // if (!item.isShow) {
        //   num1--
        //   flag = false
        // }
        // if (!flag) {
        //   return state.arr.length + num1
        // }
      }, 0)
    },
  },
  mutations: {
    // 添加数组方法
    pushArr(state, payload) {
      state.arr.push(
        payload
      )
    },
    // 删除方法
    removeArr(state, payload) {
      state.arr.splice(payload, 1);
    },
    // 添加单选框选中
    addIsChecked(state, payload) {
      state.arr.map(item => item.isChecked = payload)
    },
    // 删除多个方法
    removeArrS(state, payload) {
      // 首先获取选中的单选框 获取对应的索引，存到数组里
      let num = 0
      payload.forEach((item, index) => {
        // console.log(item, index);
        console.log(payload);
        if (index === 0) {
          state.arr.splice(item, 1);
        }
        else {
          num--
          state.arr.splice(item + num, 1);
        }
      })
    },
    // 修改数组对象
    pushArr2(state, payload) {
      state.arr.forEach((item, index) => {
        if (item.id === payload.id) {
          item.pname = payload.pname
          item.id = payload.id
          item.uptDate = payload.uptDate
          item.price = payload.price
          item.count = payload.count
          item.user = payload.user
        }
      }
      )
    },

  },

  actions: {

  },
  modules: {

  }
})
